<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
  <script>
    // 变量不同类型之间的转换

    // 1. 其他数据类型转成数值

    // 1.1 Number(变量)方法
    // 可以把一个变量强制转换成数值类型
    // 可以转换小数，会保留小数
    // 可以转换布尔值
    // 遇到不可转换的都会返回 NaN
    // var num = "3.14";
    // console.log(num);  "3.14"
    // console.log(Number(num)); 3.14
    // console.log(Number(true)); 1
    // console.log(Number("abc")); NaN
    // console.log(Number(undefined)); NaN
    // console.log(Number(null)); 0



    // 1.2 parseInt(变量)方法
    //  从第一位开始检查，是数字就转换，直到一个不是数字的内容
    //  开头就不是数字，那么直接返回 NaN
    //  不认识小数点，只能保留整数
    // console.log(parseInt(333.444)); // 333
    // console.log(parseInt("333.444")); // 333
    // console.log(parseInt("333a33bgtrh444")); // 333
    // console.log(parseInt("abc"));
    // console.log(parseInt(true)); 只能写数字或者数字字符串



    // 1.3 parseFloat(变量)
    //  从第一位开始检查，是数字就转换，直到一个不是数字的内容
    //  开头就不是数字，那么直接返回 NaN
    //  认识一次小数点
    // console.log(parseFloat("333.444"));
    // console.log(parseFloat("333.444.555"));
    // console.log(parseFloat("333a33bgtrh444"));
    // console.log(parseFloat("abc"));
    // console.log(parseFloat(true));




    // 2. 其他数据类型转成字符串
    // 2.1 变量.toString()
    // 有一些数据类型不能使用 toString() 方法，比如 undefined 和 null
    // var num = 5;
    // var bool = true;
    // var nl = null;
    // var undef = undefined;
    // console.log(num.toString());
    // console.log(bool.toString());
    // console.log(nl.toString());
    // console.log(undef.toString());

    // 2.2 String(变量)
    // 所有数据类型都可以
    // console.log(String(5));
    // console.log(String("5"));
    // console.log(String(true));
    // console.log(String(undefined));
    // console.log(String(null));

    // 2.3 使用加法运算
    // 任意的值想转成字符串，可以直接用加号拼接一个空字符串





    // 3. 其他数据类型转成布尔值
    // 3.1 Boolean(变量), 将值转成布尔值
    // 0, "", undefined, null, NaN, false。除了这些值，其他所有值转成布尔值都是true
    // console.log(Boolean(1)); // true
    // console.log(Boolean(2)); // true
    // console.log(Boolean(0)); // false
    // console.log(Boolean("")); // false
    // console.log(Boolean(undefined)); // false
    // console.log(Boolean(null)); // false
    // console.log(Boolean(NaN)); // false

    // 3.2 使用两个!!，做布尔值的强制转换


  </script>
</body>
</html>